package com.sporadic.backstage.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sporadic.backstage.dto.UserDto;
import com.sporadic.backstage.entity.User;
import dto.UserDTO;

import java.util.List;
import java.util.Map;

public interface UserService {

    /**
     * 根据条件分页查询会员信息
     * @param page
     * @param map 可为空
     * @return
     */
    IPage<UserDTO> selUserPage(Page page, Map map);
    /**
     * 新增会员
     * @param user 会员信息详情
     * @return 受影响行数
     */
    Integer addUser(User user);

    /**
     * 修改会员信息
     * @param uId 会员信息详情
     * @return 受影响行数
     */
    Integer upUserByUid(User uId);
    /**
     * 批量删除会员
     * @param list 要删除会员集合
     * @return
     */
    int delUser(List list);

    /**
     * 根据商家积分等级查询会员总人数
     * @param merchantId 商家编号
     * @param userRankId 积分等级编号
     * @return 总人数
     */
    Integer selUserCountByRank(Integer merchantId,Integer userRankId);

    /**
     * 分页查询商家本月消费会员
     * @param page
     * @param orderMerchantId 所属商家编号
     * @return
     */
    IPage<User> selByMonthUserPage(Page page,Integer orderMerchantId);

    /**
     * 分页查询商家今天生日会员信息
     * @param page
     * @param orderMerchantId
     * @return
     */
    IPage<User> selByBirthdayNowUserPage(Page page,Integer orderMerchantId);
    /**
     * 分页查询商家本月过生日会员信息
     * @param page
     * @param orderMerchantId
     * @return
     */
    IPage<User> selByBirthdayMonthUserPage(Page page,Integer orderMerchantId);

    /**
     * 查询会员构成
     * @param merchantId 商家ID
     * @return 返回会员构成信息
     */
    List<UserDto> findMembershipFormSkip(Integer merchantId);

}
